package com.demo.proxy07;

/**
 * Proxy：代理角色，实现了与真实对象相同的接口，所以在任何时刻都能够代理真实对象，并且代理对象内部包含了真实对象的引用，
 * 所以它可以操作真实对象，同时也可以附加其他的操作，相当于对真实对象进行封装。
 */
public class HerChum implements GiveGift{

    /**
     * 代理对象内部包含了真实对象的引用，所以它可以操作真实对象
     * 同时也可以附加其他的操作，相当于对真实对象进行封装。
     */
    private final You you;
    
    public HerChum(BeautifulGirl mm){
        you = new You(mm);
    }
    
    @Override
    public void giveBook() {
        you.giveBook();
    }
 
    @Override
    public void giveChocolate() {
        you.giveChocolate();
    }
 
    @Override
    public void giveFlowers() {
        you.giveFlowers();
    }
}